﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MvcEngine.Blog.Models.Entities;
using MvcEngine.Core.Repositories;
using MvcEngine.Core.Pagination;

namespace MvcEngine.Blog.Repositories
{
    public interface IBlogCategoryRepository
    {
        BlogCategory Get(Guid id);
        
        BlogCategory Get(Guid blogId, string categorySlug);
        
        IPagination<BlogCategory> GetAll(Guid blogId, int pageNumber, int count);

        IList<BlogCategory> GetAll(Guid blogId);

        IList<BlogCategory> GetAllWithPublishedPosts(Guid blogId);

        IList<BlogCategory> GetAllByPost(Guid postId);
        
        void Add(BlogCategory entity);
        
        void Delete(Guid id);
        
        void DeleteAll(Guid blogId);

        void Update(BlogCategory category);
    }
}
